改寫
改寫(overriding)的觀念和多載相似,他們都是JAVA的多型(polymorphism)的技術之一。polymorphism的原意是「多樣性」,而多型的特色即是函數在不同的情況下可扮演不同的角色。
class Test{ //父類別
...
public void area(){ //父類別裡的area()函數
...
}
}
class lala extends Test{ //子類別
...
public void area(){ //子類別裡的area()函數
...
}
}
public static void main(String args[]){
lala.area();
}
從上面的程式可以看到,父類別和子類別都有一個不需要引數且名稱相同的area()函數,但是當lala這個物件呼叫時,到底是哪一個area()會被呼叫呢?
子類別裡所定義的area()取代父類別的area()功能,這種情形於OOP的技術裡稱之為「改寫」。也就是說透過「改寫」的技術,於子類別中可定義和父類別裡的名稱、引數個數與資料型態完全相同的函數,用以取代父類別中原有的函數。
多載與改寫的比較
-多載:是在相同類別內,定義名稱相同,但引數個數或型態不同的函數,如此一來,JAVA便可依據引數的個數或形態,呼叫相對應的函數。
-改寫:是在子類別中,定義名稱、引數個數與傳回值的型態均與父類別相同的函數,用以改寫父類別裡的函數功用。
final修飾子
(1)變數或是類別裡的資料成員經過final宣告之後,就像常數般無法在被更改其值,他的值只能在final宣告時設定一次。
(2)函數經過final宣告之後,不能被改寫。
(3)類別經過final宣告之後,不能被繼承。
菜鳥工程師也有分享食記,歡迎大家追蹤喔~~
https://instagram.com/engineer_bodyfat?utm_medium=copy_link
中秋假期開始啦~~
See U tomorrow:))